It is currently very difficult to identify qualified candidates for certain employment positions. Candidates have diverse educational and professional backgrounds which are often extremely difficult to compare. Candidates may also represent their experience using subjective terms. In some cases, the sheer number of candidates in the pool may make identifying optimal candidates difficult.
Most of the current assessment techniques for candidates in programming positions combine simplistic assessments with subjective evaluations. For example, software written by a candidate as part of a qualification exercise may be assessed by a human reviewer who makes a subjective conclusion as to the quality of the candidate solution. These approaches are time consuming and prone to error because they are not subjective and do not scale efficiently.